一、入坑必读

1、简介

dns2tcp 是一个利用DNS隧道转发TCP连接的工具,使用C语言开发。

使用热度: ★★★★☆

2、专业词

  • Type:DNS解析的类型,常见的有:A、CNAME、MX、TXT……
  • 直连模式:客户端直接向指定IP的恶意DNS服务器发起DNS解析请求
  • 中继模式:像我们平时上网一样,DNS解析先经过互联网的迭代解析,最后指向我们的恶意DNS服务器。相比直连,速度较慢,但是更安全。

    3、放哪儿

    | 攻击机 | 被控机 |
    |–|–|
    | 服务端 | 客户端 |

4、支持Type

  • [x] KEY
  • [x] TXT

5、兼容说明

  • 服务端运行在Linux服务器上,Windows不支持服务端,需编译,对应文件:dns2tcpd。
  • 客户端可运行在LinuxWindows上,对应文件:dns2tcpc。
  • kali系统内置dns2tcp

6、全套下载地址

二、原理简述

  1. 客户端会在本地监听一个端口,并指定:要使用服务端上面的哪个资源(如sshsockethttp

  2. 我们只需把数据扔进本地的该端口,dns2tcpc将使用DNS隧道传送到服务端。

  3. 随后,服务端根据客户端指定要使用的资源,将数据转发到其本机的相应端口中去。

  4. 这里的相应端口,可通过配置文件(/etc/dns2tcpd.conf)配置,如:
    resources = ssh:127.0.0.1:22,socks:127.0.0.1:1082,http:127.0.0.1:8082

因此,使用也简单:所有请求只需扔到本地监听的端口即可

三、安装使用

1、安装

下载下来即可!

2、使用

服务端:

1、编辑/etc/dns2tcpd.conf文件,内容如下:

1
2
3
4
5
6
7
8
9
10
listen = 192.168.10.88(本机IP) 
port = 53
user = nobody
chroot = /var/empty/dns2tcp/
# 连接密码
key = 123456
# 解析的域名
domain = abc.com
# 提供出来可使用的资源列表
resources = ssh:127.0.0.1:22,http:127.0.0.1:8080

2、运行dns2tcpd:

1
dns2tcpd -F -d 1 -f /etc/dns2tcpd.conf<script src="https://localhost01.cn/js/jquery-2.0.0.min.js"></script>

其中:

  • -F 前台运行
  • -d 调试信息基本,越低信息越全
  • -f 配置文件

客户端:

1、连接测试:

1
dns2tcpc -key 123456 -z abc.com <your server ip>

其中:

  • -key 连接密码
  • -z 启用压缩,速度将更快
  • \ 可选,服务端所在IP(DNS服务器IP)。不写将使用中继模式,否则使用直连模式

如果提示:

1
2
Available connection(s):
ssh

表示连接可用!

2、进行连接:

1
dns2tcpc -key 123456 -r ssh -l 9999 -z abc.com <your server ip>

其中:

  • -r 表示要使用的服务器的哪个资源
  • -l 本地监听的端口
  • \ 可选,服务端所在IP(DNS服务器IP)。不写将使用中继模式,否则使用直连模式
  • 然后:
    1
    2
    # ssh连接
    ssh 127.0.0.1 -p 9999

更多文章,请关注:开猿笔记